﻿using Paging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Ordering.API.Application.Queries
{
    public interface IOrderQueries
    {
        /// <summary>
        /// 通过ID查询订单
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<OrderModel> GetOrderAsync(int id);
        /// <summary>
        /// 过滤订单
        /// </summary>
        /// <returns></returns>
        Task<PaginatedItemsViewModel<OrderModel>> GetOrdersAsync(OrderFilter filter);
        /// <summary>
        /// 过滤汇总订单
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        Task<OrderSummaryModel> GetOrderSummaryAsync(OrderFilter filter);
        /// <summary>
        /// 查询各状态订单数量
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        Task<IEnumerable<OrderStatusNum>> GetOrderStatusNum(OrderFilter filter);

    }
}
